"""
使用bs4解析数据
构造bs4对象
搜索节点
通过find_all,find等操作方法搜索节点
通过css选择器搜索
获取节点内容
get_text()
"""

# 1，利用requests爬取百度首页，保存在文件 baidu.html
# 爬取网页  是否需要登录才能爬取(可以利用cookie 或 session实现)
# get请求还是post请求(post请求需要请求体数据)
import requests

# get请求
from bs4 import BeautifulSoup

url='https://www.baidu.com/'
headers={
    'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/85.0.4183.102 Safari/537.36'
}
r = requests.get(url, headers=headers)


with open('baidu.html','w',encoding='utf-8') as f:
    f.write(r.content.decode())

# 利用bs4解析百度.html文件
# 构造bs4函数,传入两个参数1：要解析的文本(字符串)参数2：解析器
soup = BeautifulSoup(r.content.decode(),'lxml')
# 利用find_all，find方法搜索节点/标签
# 搜索文本中所有的a标签
result1 = soup.find_all('a')
result2 = soup.find('a')
# print(type(result1))
# print(result1)
result3=soup.find_all(['a','img'],limit=3)
# print(result3)
print('========搜索a标签，以及特殊属性值=======')
result4=soup.find_all('a',{'class':'mnav c-font-normal c-color-t'})
# print(result4)
for e in result4:
    print(e)

# 利用css选择器搜索
print('--------用select搜索title标签---------')
r1=soup.select('title')
print(r1)
print('--------搜索类名为hotsearch-item-----------')
r2=soup.select('li.hotsearch-item')
for e in r2:
    print(e.get_text())
